<?php

/**
 * @copyright 2011
 * @version $Id$
 * @access public
 */
class Default_Model_Facade_Users{

	/**
	 * Constructor de la clase
	 * @return void
	 */
	public function  __construct() {

	}

	/**
	 * Lee las galerias
	 * @param mixed $resource: Objeto con los datos del recurso a leer.
	 * @return array $data
	 */
	public function validateFields($to=null)
	{
		$valid=true;
		$errores=array();
		$validatorEmail		=new Zend_Validate_EmailAddress();
		$validatorDate 		= new Zend_Validate_Date();
		$validatorSpaces 	= new Zend_Validate_Alnum(array('allowWhiteSpace' => true));
		$validatorNoSpaces 	= new Zend_Validate_Alnum(array('allowWhiteSpace' => false));
		$validatorStrlen	= new Zend_Validate_StringLength();
		$validatorNoexistsEmail 	= new Zend_Validate_Db_NoRecordExists(array('table' => 'nanotec_users', 'field' => 'Email'));
		$validatorNoexistsUsername 	= new Zend_Validate_Db_NoRecordExists(array('table' => 'nanotec_users', 'field' => 'Username'));

		try{

			$s_Sass = new Zend_Session_Namespace('s_Sass');
			$validatorStrlen->setMin(3);
			if(!$validatorSpaces->isValid($to['Name']) || !$validatorStrlen->isValid($to['Name']) ){
				$errores[]="Debe escribir su nombre correctamente para poder continuar";
				$valid=false;
			}

			if(!$validatorSpaces->isValid($to['Surnames'])){
				$errores[]="Debe escribir sus apellidos, son importantes para poder dirigirnos a usted.";
				$valid=false;
			}

			if(!$validatorSpaces->isValid($to['Address1'])){
				$errores[]="Debe escribir su dirección, es importante para poder facturar su compra.";
				$valid=false;
			}


			if(!$validatorSpaces->isValid($to['CP'])){
				$errores[]="Debe escribir su código postal, es importante para poder facturar su compra.";
				$valid=false;
			}

			if(!$validatorEmail->isValid($to['Email'])){
				$errores[]="Debe escribir un email válido para poder continuar";
				$valid=false;
			}

			if(!$validatorNoexistsEmail->isValid($to['Email'])){
				$errores[]="El email que ha escrito ya se encuentra en uso, intente nuevamente con otro.";
				$valid=false;
			}

			if(!$validatorDate->isValid($to['Birthdate'])){
				$errores[]="Debe escribir una fecha de nacimiento válida para poder continuar";
				$valid=false;
			}

			$validatorStrlen->setMin(4);
			if(!$validatorNoSpaces->isValid($to['Username']) || !$validatorStrlen->isValid($to['Username'])){
				$errores[]="Debe escribir un nombre de usuario de más de 4 caractéres, este servirá poder identicarse en nuestra tienda.";
				$valid=false;
			}

			if(!$validatorNoexistsUsername->isValid($to['Username'])){
				$errores[]="El usuario que intenta registrar ya se encuentra en uso, intente nuevamente con otro.";
				$valid=false;
			}

			$validatorStrlen->setMin(6);
			if(!$validatorNoSpaces->isValid($to['Passwd']) || !$validatorStrlen->isValid($to['Passwd'])){
				$errores[]="Debe escribir una contraseña como mínimo 6 caractéres, esta servirá poder identicarse en nuestra tienda.";
				$valid=false;
			}

			if($to['Passwd'] != $to['Repasswd']){
				$errores[]="Las contraseñas escritas no coinciden, escríbalas correctamente.";
				$valid=false;
			}

			$s_Sass->messageError=$errores;


			return $valid;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}

	public function addUser($to=null){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->addUser($to);
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}

	public function setDefaultBillingInformation($to=null){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->setDefaultBillingInformation($to);
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}

	public function setNoDefaultBillingInformation($to=null){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->setNoDefaultBillingInformation($to);
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}

	public function addBillingInformationByIdUser($to=null){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->addBillingInformationByIdUser($to);
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}



	public function getAllBillingInformationByUserId($id=0){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->getAllBillingInformationByUserId($id);
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}


	public function getPaises(){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->getPaises();
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}


	public function getestadosbyidpais($id=0){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->getestadosbyidpais($id);
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}


	public function getTotalUsers(){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->getTotalUsers();
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}

	
	public function setProductsFromDbToSessionCart($userid=0){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->setProductsFromDbToSessionCart($userid);
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}


	public function setProductsInCartFromDb($userid=0){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->setProductsInCartFromDb($userid);
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
		}
	}
	
	public function IsThisMyPassword($to=array()){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->IsThisMyPassword($to);
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
			return false;
		}
	}

	public function updatePasswordByUserId($to=array()){
		$TBD_Resource = new Default_Model_Users();
		try{
			$data = $TBD_Resource->updatePasswordByUserId($to);
			return $data;
		}catch(Exception $e)
		{
			$error=array($e->getFile(), 'Exception: '.$e->getMessage());
			$ExceptionHandler= new Default_Model_ExceptionHandler();
			$ExceptionHandler->saveErrors($error);
			return false;
		}
	}
	
}